﻿#pragma once

#include"../ICuDGGSKernel.cuh"


_NNU_DGGS_BEGIN
namespace Kernel::Projection
{
    class Project;
}
using namespace Kernel::Projection;
namespace Kernel::ISEA4T
{
    class CuISEA4TImpl:public ICuDGGSKernel
    {
    public:
        //初始化
        __DGGS_CPGPU__ void init()override;
        //释放
        __DGGS_CPGPU__ void release()override;

        //编码转地理坐标
        __DGGS_CPGPU__ bool decode(DGGSElementCode code, GeoCoord& coords)override;
        //地理坐标转编码
        __DGGS_CPGPU__ bool encode(GeoCoord coords, DGGSElementCode& code)override;


    private:
        //投影类
        Project* isea = NULL;
        //格网类型
        DGGSGridType gridType = DGGSGridType::DGGS_ISEA4T;

        int level = 0;
    };
}
_NNU_DGGS_END

